package org.brisling.supply.service;

import java.util.Date;
import java.util.List;

import org.brisling.common.SysConfig;
import org.brisling.common.util.DateUtil;
import org.brisling.supply.domain.SupplyBaseInfo;
import org.brisling.supply.domain.SupplyInquiry;
import org.brisling.supply.queryService.QueryBaseSupplyInfoService;
import org.brisling.supply.queryService.QueryBaseinfoService;
import org.brisling.sysman.queryService.QueryDictionaryService;
import org.brisling.sysman.queryService.QueryPermissionService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

@Component
public class SupplyMonitorService {
	
	@Autowired
	private SupplyInquiryService supplyInquiryService;
	@Autowired
	private QueryBaseinfoService qryBaseinfoService;

	@Autowired
	private QueryDictionaryService dicService;

	@Autowired
	private QueryBaseSupplyInfoService qryBaseSupplyInfoService;
	@Autowired
	QueryPermissionService queryPermissionService;
	
	//保存基本信息不完备供应商数据
	public void countAndInsertA(){
		String Bizcode="supplyInquiry";//业务编码
		String bizcode=queryPermissionService.getBizFlowConfig(Bizcode).getFullBizcode();
		String flowid=queryPermissionService.getBizFlowConfig(Bizcode).getFlowid();
		
		String sql =dicService.getSqlByBizcode("supply_info");
		
		List<SupplyBaseInfo> lists= qryBaseinfoService.getMonitorData(sql);
		
		if(lists!=null&&bizcode!=null&&flowid!=null){
		for(SupplyBaseInfo a:lists){
			if(a!=null){
			if(a.getSup_type()!=null&&a.getSup_type()!=4){
			String thisdate=DateUtil.date2JsonStr(new Date());//获取时间			
			thisdate = thisdate ==null?"":thisdate.substring(0,10);
			String ids =SysConfig.getConfig("supplyInqueryDept");
			
			String _config[] = null;
			if(ids!=null){
				_config = ids.split(",");
			}
			SupplyInquiry A = new SupplyInquiry();
			A.setFlowid(flowid);//
			A.setFullBizcode(bizcode);//
			A.setInquiry_date(new Date()); //质询时间
			A.setSupply_id(a.getId());//供应商ID
			A.setInquiry_item("供应商信息");//质询事项
			A.setInquiry_item_code("1");
			A.setInquiry_reason("截至"+thisdate+"该供应商基本信息未保存完备");//质询原因
			A.setSupply_name(a.getSup_name());//供应商
			A.setSupply_id(a.getId());//供应商id
			
			int sType = a.getSup_type().intValue();
			switch(sType){
			case 2:
				//耗材
				A.setLitigant_deptname(_config[4]);//责任部门
			    A.setLitigant_deptid(_config[5]);//责任部门id
			    A.setLitigant_name(_config[6]);//责任人
			    A.setLitigant_id(_config[7]);//责任人id
				break;
			case 3:
				//药品				
				A.setLitigant_deptname(_config[0]);//责任部门
			    A.setLitigant_deptid(_config[1]);//责任部门id
			    A.setLitigant_name(_config[2]);//责任人
			    A.setLitigant_id(_config[3]);//责任人id
			    break;
			case 4:
				//设备
				A.setLitigant_deptname(_config[8]);//责任部门
			    A.setLitigant_deptid(_config[9]);//责任部门id
			    A.setLitigant_name(_config[10]);//责任人
			    A.setLitigant_id(_config[11]);//责任人id
			}
			
			
			String id =SysConfig.getConfig("inquiryUserId");
			supplyInquiryService.completeTask(id, A);
			}
		}}}
	}
	
	//保存档案不完备供应商数据
	public void countAndInsertB(){
		String Bizcode="supplyInquiry";//业务编码
		String bizcode=queryPermissionService.getBizFlowConfig(Bizcode).getFullBizcode();
		String flowid=queryPermissionService.getBizFlowConfig(Bizcode).getFlowid();
		
		String sql =dicService.getSqlByBizcode("supply_archive");
		List<SupplyBaseInfo> lists= qryBaseinfoService.getMonitorData(sql);
		String ids =SysConfig.getConfig("supplyInqueryDept");
		
		String _config[] = null;
		if(ids!=null){
			_config = ids.split(",");
		}
		if(lists!=null&&bizcode!=null&&flowid!=null){
			
		for(SupplyBaseInfo a:lists){	
			if(a!=null){
			if(a.getSup_type()!=null&&a.getSup_type()!=4){
			String thisdate=DateUtil.date2JsonStr(new Date());//获取时间			
			thisdate = thisdate ==null?"":thisdate.substring(0,10);
			
			SupplyInquiry B = new SupplyInquiry();	
			B.setFlowid(flowid);//
			B.setFullBizcode(bizcode);//
			B.setSupply_id(a.getId());//供应商ID
			B.setInquiry_date(new Date()); //质询时间
			B.setInquiry_item("供应商档案");//质询事项
			B.setInquiry_item_code("2");
			B.setInquiry_reason("截至"+thisdate+"该供应商的档案不完备");//质询原因
			B.setSupply_name(a.getSup_name());//供应商
			
			if(a.getSup_type()==1){//药品
			     B.setLitigant_deptname(_config[0]);//责任部门
			     B.setLitigant_deptid(_config[1]);//责任部门id
			     B.setLitigant_name(_config[2]);//责任人
			     B.setLitigant_id(_config[3]);//责任人id
			}
			else if(a.getSup_type()==2){//耗材
				B.setLitigant_deptname(_config[4]);//责任部门
			     B.setLitigant_deptid(_config[5]);//责任部门id
			      B.setLitigant_name(_config[6]);//责任人
			      B.setLitigant_id(_config[7]);//责任人id
			}
			else if(a.getSup_type()==3){//设备
				B.setLitigant_deptname(_config[8]);//责任部门
			     B.setLitigant_deptid(_config[9]);//责任部门id
			      B.setLitigant_name(_config[10]);//责任人
			      B.setLitigant_id(_config[11]);//责任人id
			}
			String id =SysConfig.getConfig("inquiryUserId");
			supplyInquiryService.completeTask(id, B);
			}
		}}
		}
	}
	
	
	//保存不良信息供应商信息
	public void countAndInsertC(){
		String Bizcode="supplyInquiry";//业务编码
		String bizcode=queryPermissionService.getBizFlowConfig(Bizcode).getFullBizcode();
		String flowid=queryPermissionService.getBizFlowConfig(Bizcode).getFlowid();
		
			
		String sql =dicService.getSqlByBizcode("supply_badinfomation");
		
		java.text.SimpleDateFormat f = new java.text.SimpleDateFormat("yyyy-MM-dd");
		sql = String.format(sql, f.format((new Date().getTime() - (long)24*60*60*1000*1)).toString());
		List<SupplyBaseInfo> lists= qryBaseinfoService.getMonitorData(sql);		
		String ids =SysConfig.getConfig("supplyInqueryDept");
		
		String _config[] = null;
		if(ids!=null){
			_config = ids.split(",");
		}				
		if(lists!=null&&bizcode!=null&&flowid!=null){
		for(SupplyBaseInfo a:lists){
			if(a!=null){
			if(a.getSup_type()!=null&&a.getSup_type()!=4){
			String thisdate=DateUtil.date2JsonStr(new Date());//获取时间			
			thisdate = thisdate ==null?"":thisdate.substring(0,10);
							
			SupplyInquiry C = new SupplyInquiry();
			C.setFlowid(flowid);//
			C.setFullBizcode(bizcode);//
			C.setInquiry_date(new Date()); //质询时间
			C.setSupply_id(a.getId());//供应商ID
			C.setInquiry_item_code("3");
			C.setInquiry_item("供应商不良信息");//质询事项
			C.setInquiry_reason("截至"+thisdate+"该供应商保存有不良信息："+a.getRecord_text());//质询原因
			C.setSupply_name(a.getSup_name());//供应商
			
			if(a.getSup_type()==1){//药品
			     C.setLitigant_deptname(_config[0]);//责任部门
			     C.setLitigant_deptid(_config[1]);//责任部门id
			      C.setLitigant_name(_config[2]);//责任人
			      C.setLitigant_id(_config[3]);//责任人id
			}
			else if(a.getSup_type()==2){//耗材
				C.setLitigant_deptname(_config[4]);//责任部门
			     C.setLitigant_deptid(_config[5]);//责任部门id
			      C.setLitigant_name(_config[6]);//责任人
			      C.setLitigant_id(_config[7]);//责任人id
			}
			else if(a.getSup_type()==3){//设备
				C.setLitigant_deptname(_config[8]);//责任部门
			     C.setLitigant_deptid(_config[9]);//责任部门id
			      C.setLitigant_name(_config[10]);//责任人
			      C.setLitigant_id(_config[11]);//责任人id
			}
		
			
			String id =SysConfig.getConfig("inquiryUserId");
			supplyInquiryService.completeTask(id, C);	
			}
		}
		}
	}}	
	
	//自动更新供应商不良信息质询数据统计
		public void countAndInsertBaseSupplyInfo(){
			qryBaseSupplyInfoService.autoTask();
		}
}
